MQTT broker MQTT

MQTT broker là một phần mềm chạy trên máy tính (chạy trực tiếp trên máy hoặc trên đám mây) và có thể được tự xây dựng hoặc host bởi bên thứ ba. Các phần mềm MQTT broker ngày nay có ở hai dạng mã nguồn mở và triển khai độc quyền.

Các broker hoạt động như một bưu điện, MQTT không sử dụng địa chỉ của người sẽ được nhận tin nhắn mà sử dụng cơ chế quản lý theo "topic" (tạm dịch: “Chủ đề”), và bất kỳ ai muốn có một bản sao của tin nhắn được gởi sẽ phải đăng ký topic đó. Nhiều client có thể nhận được tin nhắn từ một broker duy nhất (one to many, tạm dịch: quan hệ một - nhiều). Tương tự, nhiều publisher có thể xuất bản (publish) các topic cho một người đăng ký (many to one, tạm dịch: quan hệ nhiều - một).

Mỗi client có thể vừa sinh và vừa nhận dữ liệu, bằng cách xuất bản (publish) và đăng ký (subscribe), tức là các thiết bị có thể xuất ra dữ liệu cảm biến và vẫn có thể nhận được thông tin cấu hình hoặc lệnh điều khiển (MQTT là một giao thức truyền thông hai chiều). Điều này giúp ích trong cả việc chia sẻ dữ liệu, quản lý và điều khiển thiết bị.

Với kiến trúc MQTT broker, các thiết bị và ứng dụng trở nên tách rời và an toàn hơn. MQTT sử dụng mã hóa Bảo mật tầng truyền tải (TLS) với thông tin về tên người dùng và mật khẩu để bảo vệ các kết nối, và có thể dùng thêm các xác thực bảo mật khác để yêu cầu client phải cung cấp file xác thực phù hợp với máy chủ.

Trong trường hợp xảy ra lỗi với một broker, một broker dự phòng/sao lưu tự động có thể được sử dụng để thay thế. Broker dự phòng có thể được thiết lập để chia sẻ tải của client thông qua nhiều server tại chỗ, đám mây hoặc sử dụng phối hợp cả hai cách này.

Broker có thể hỗ trợ cả MQTT tiêu chuẩn và các biến thể MQTT mang tính đặc thù như Sparkplug.[22]

Các broker có thể lưu trữ dữ liệu dưới các retained message (cần đăng ký với cơ sở dữ liệu client) để những người đăng ký mới vào chủ đề có thể nhận được giá trị mới nhất ngay lập tức.

Broker cũng theo dõi tất cả thông tin của các phiên làm việc khi các thiết bị đang hoặc ngưng hoạt động, cơ chế này được gọi là “persistent sessions" (tạm dịch: "phiên liên tục”).

Những ưu điểm chính của MQTT broker là:

  1. Loại bỏ các kết nối client dễ bị tấn công và không an toàn.
  2. Có thể dễ dàng mở rộng quy mô từ một thiết bị đến hàng nghìn thiết bị.
  3. Quản lý và theo dõi tất cả các trạng thái kết nối của client, bao gồm cả chứng chỉ và thông tin xác thực bảo mật.
  4. Giảm thiểu tình trạng quá tải của hệ thống mạng mà không ảnh hưởng đến bảo mật (với mạng di động hoặc vệ tinh)